define([ 'config', 'text!app/module/system/sysLog.html', 'mydialog', 'laypage',
		'autocomplete', 'jqGrid', 'common', 'laydate' ], function(config,
		viewHTML, mydialog, laypage, autocomplete, jqGrid, common, laydate) {

	var token = (cache.go("token") === 'undefined') ? 'none' : cache
			.go("token");

	var grid_url = "/api/sysLog/list";

	var model = avalon.define({
		$id : "sysLog",
		query : {
			keyword : "",
			start_date : "",
			end_date : "",
		},
		//初始化
		init : function() {
			model.loadGrid();
			model.addEvent();
		},

		loadGrid : function() {
			var i = Public.setGrid();

			$("#grid").jqGrid({

				// token验证
				loadBeforeSend : function(jqXHR) {
					jqXHR.setRequestHeader("X-AuthToken", token);
				},

				datatype : "JSON",
				mtype : "POST",
				url : grid_url,
				postData : model.query.$model,
				height : i.h,
				altRows : true,
				rownumbers : true,
				multiselect : true,
				multiboxonly : true,
				page : 1,
				sortname : "id",
				sortorder : "desc",
				pager : "#page",
				rowNum : 10,
				rowList : [ 10, 30, 50 ],
				viewrecords : true,
				shrinkToFit : false,
				forceFit : false,
				jsonReader : {
					root : "data.list",
					records : "data.totalRow",
					total : "data.totalPage",
					repeatitems : false,
					id : "id"
				},

				colModel : [ {
					name : "method",
					label : "请求类型",
					align : "center",
					width : '100%',
					title : false
				}, {
					name : "moduleName",
					label : "模块名",
					align : "center",
					width : '210%',
					title : false
				}, {
					name : "operatorId",
					label : "操作员",
					align : "center",
					width : '100%',
					title : false
				}, {
					name : "logTime",
					label : "创建时间",
					align : "center",
					width : '210%',
					title : false,
					formatter : Public.custDatefmter
				}, {
					name : "take",
					label : "耗时ms",
					align : "center",
					width : '100%',
					title : false
				}, {
					name : "status",
					label : "返回状态",
					align : "center",
					width : '100%',
					title : false
				},
				{
					name : "type",
					label : "日志类型",
					align : "center",
					width : '100%',
					title : false
				},
				// {name : "url",label : "请求地址",align : "center",width :
				// '50%',title : false },
				// {name : "className",label : "操作的类名", align : "center",idth :
				// '100%',title : false},
				// {name : "sourceId",label : "来源(IP)",align : "center",width :
				// '100%',title : false},
				// {name : "startTime",label : "开始时间",align : "center",width :
				// '100%',title : false},
				// {name : "endTime",label : "结束时间",align : "center",width :
				// '100%',title : false},
				// {name : "userAgent",label : "浏览器信息",align : "center",width :
				// '100%',title : false},
				// {name : "remark",label : "备注",align : "center",width :
				// '100%',title : false},
				// {name : "response",label : "返回信息",align : "center",width :
				// '100%',title : false},
				// {name : "headers",label : "请求头",align : "center",width :
				// '100%',title : false},
				// {name : "lvl",label : "日志等级",align : "center",width :
				// '100%',title : false},
				// {name : "content",label : "日志内容",align : "center",width :
				// '200%',title : false},//18

				],

				cmTemplate : {
					sortable : false,
					title : false
				},
				loadError : function() {
					Public.tips({
						type : 2,
						content : "加载数据出现异常！"
					})
				},
				ndblClickRow : function(t) {
					model.view(t);
				},

			});
		},
		//提交方法
		reloadData : function() {
			$("#grid").jqGrid("setGridParam", {
				url : grid_url,
				datatype : "JSON",
				mtype : 'POST',
				page:"1",
				postData : model.query.$model
			}).trigger("reloadGrid");
		},
		//重置方法
		reset : function() {
			model.query = {
				keyword : "",
				start_date : "",
				end_date : "",
			}, model.reloadData();
		},

		addEvent : function() {
			//提交
			$("search").click(function(e) {
				e.preventDefault();
				model.reloadData();
			});
			//重置
			$("#resets").click(function(e) {
				e.preventDefault();
				model.reset();
				model.reloadData();
			});

		}

	});

	// 定义视图模块
	var viewmod = {
		viewtSrc : viewHTML,
		viewInit : function() {
			model.init();
		}, // 模块view加载完成后的回调方法，在刷新（F5）时可能调用两次
		viewDestroy : function() {
		} // 切换菜单时销毁原来的view
	};
	return viewmod;

});